package com.chenfan.mcn.model.dto;

import com.alibaba.fastjson.annotation.JSONField;
import com.chenfan.common.extension.validation.groups.Add;
import com.chenfan.common.extension.validation.groups.Modify;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;

/**
 * 红人月度结算单-新增/修改DTO
 *
 * @author wulg
 * @date 2022-01-13
 **/
@Data
public class StarMonthlySettlementSaveDTO implements Serializable {

    /**
     * 结算单ID
     */
    @NotNull(message ="结算单ID不能为空" , groups ={Modify.class})
    private Long id;

    /**
     * 红人ID
     */
    @NotNull(message ="红人ID不能为空", groups ={Add.class})
    private Long starId;

    /**
     * 单据状态：0_待提交、1_审批中、2_待打款、3_审批拒绝、4_已撤回、5_部分打款、6_已打款、9_已作废
     */
    @NotNull(message ="单据状态不能为空", groups ={Modify.class})
    private Integer approvalStatus;

    /**
     * 信息确认截图
     */
    private String confirmScreenshot;

    /**
     * 结算时间
     */
    @NotNull(message ="结算时间不能为空", groups ={Modify.class})
    @JSONField(format = "yyyy-MM")
    private Date settlementDate;

    /**
     * 是否线下报销：0否1是
     */
    @NotNull(message ="是否线下报销不能为空", groups ={Modify.class})
    private Integer isOfflineReimburse;

    /**
     * 附件
     */
    private String attachmentFile;

    /**
     * 备注
     */
    private String remark;

    /**
     * 红人收款账号
     */
    @NotNull(message ="红人收款账号不能为空", groups ={Modify.class})
    private Long starAccountId;

}
